A Theory of Vertically Composable Transactional Objects
نویسندگان
چکیده
We introduce a methodology and formal model that captures the essence of vertically composable transactional objects. Vertical composition adds complexity to transactional systems. As such, we aim to unearth a clean semantic model that strikes a balance between anticipating future implementation methodologies yet, nonetheless, offering a formal treatment of effective existing implementations. To this end we adopt a layered approach and show that first-class treatment of computation reversibility leads to a natural form of vertical composition: a given upper layer in a hierarchy can use inverses to roll back its operations and a contention manager can ensure progress by, at any point, applying inverses on behalf of an executing transaction. The model’s expressiveness is evident, for example, from the fact that we do not require that one object layer use the same implementation strategy (e.g. pessimism versus optimism) as another. Our main technical results are the first proofs of contextual refinement (stronger than serializability) and vertical composition for transactional objects. Our underlying semantics gives rise to a novel transactional variant of Herlihy’s Universal Construction. Our model is a generalization of many known TM implementations, including memory transactions, transactional boosting, some nested transactions, etc. Yet the model also anticipates new strategies and leads to a framework for constructing highly-concurrent systems in a modular way. To this end, we describe how it could be used to implement a highlyconcurrent transactional file system out of linearizable base objects.
منابع مشابه
A Domain Specific Language for Composable Memory Transactions in Java
In this paper we present CMTJava, a domain specific language for composable memory transactions [7] in Java. CMTJava provides the abstraction of transactional objects. Transactional objects have their fields accessed only by special get and set methods that are automatically generated by the compiler. These methods return transactional actions as a result. A transactional action is an action th...
متن کاملComposable Transactional Objects: A Position Paper
Memory transactions provide programmers with a convenient abstraction for concurrent programs: a keyword (such as atomic) designating a region of code that appears, from the perspective of concurrent threads, to execute atomically. Unfortunately, existing implementations in the form of software transactional memory (STM) are often ineffective due to their monolithic nature: every single read or...
متن کاملVertical Composition of Reversible Atomic Objects
The classic Herlihy/Wing notion of concurrent objects has had great success in theories and implementations (e.g. java.util. concurrent), providing programmers with the simple abstraction of an atomic object. Since then, software transactions have appeared, also touting the the goal of providing an atomicity abstraction. However, despite some vertical composition strategies within particular ST...
متن کاملCan Software Transactional Memory Make Concurrent Programs Simple and Safe?
Parallel programs are key to exploiting the performance of modern computers, but traditional facilities for synchronizing threads of execution are notoriously difficult to use correctly, especially for problems with a non-trivial structure. Software transactional memory is a different approach to managing the complexity of interacting threads. By eliminating locking, many of the complexities of...
متن کاملTowards Transactional Memory for OpenMP
The OpenMP specification lacks a composable shared memory concurrency mechanism: the current OpenMP concurrency mechanisms, such as OMP critical, locks, or atomics, do not support composition. In this paper, we motivate the need for transactional memory (TM) in OpenMP. The chief reason is to support composition of realistic programs, but we also consider whether TM is easier to program than loc...
متن کامل